<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Wally The Sentry Bot: Code for MegaMan</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Wally The Sentry Bot
   &#160;<span id="projectnumber">0.2</span>
   </div>
   <div id="projectbrief">A silly Arduino project to play with sensors, Xbees and a Peggy 2.0 pegboard</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('group___mega_man.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Code for MegaMan</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88866375a97efd9911514c81c87d5929"></a><!-- doxytag: member="MegaMan::getRightN" ref="ga88866375a97efd9911514c81c87d5929" args="(pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga88866375a97efd9911514c81c87d5929">getRightN</a>(pixelByte)&#160;&#160;&#160;(pixelByte &amp; 0x0F)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the right 4bit nibble from pixelByte. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9d44d6425f8227b6cbefb103eb8a3fa5"></a><!-- doxytag: member="MegaMan::getLeftN" ref="ga9d44d6425f8227b6cbefb103eb8a3fa5" args="(pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga9d44d6425f8227b6cbefb103eb8a3fa5">getLeftN</a>(pixelByte)&#160;&#160;&#160;(pixelByte &gt;&gt; 4 &amp; 0x0F)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the left 4bit nibble from pixelByte. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab304dddbd1678551085bc66d54776d90"></a><!-- doxytag: member="MegaMan::setRightN" ref="gab304dddbd1678551085bc66d54776d90" args="(buffer, pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gab304dddbd1678551085bc66d54776d90">setRightN</a>(buffer, pixelByte)&#160;&#160;&#160;buffer = (buffer &amp; 0xF0 | (pixelByte &amp; 0x0F))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set right 4bit nibble of buffer with content of pixelByte. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7417764fac912650a002010fbb4d02d7"></a><!-- doxytag: member="MegaMan::setLeftN" ref="ga7417764fac912650a002010fbb4d02d7" args="(buffer, pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga7417764fac912650a002010fbb4d02d7">setLeftN</a>(buffer, pixelByte)&#160;&#160;&#160;buffer = (buffer &amp; 0x0F| (pixelByte &lt;&lt; 4 &amp; 0xF0))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set left 4bit nibble of buffer with content of pixelByte. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga23569b6fb24ec4bd1583b2ee506df91b"></a><!-- doxytag: member="MegaMan::joinNibbles" ref="ga23569b6fb24ec4bd1583b2ee506df91b" args="(pixelByte, lsbPixel, msbPixel)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga23569b6fb24ec4bd1583b2ee506df91b">joinNibbles</a>(pixelByte, lsbPixel, msbPixel)&#160;&#160;&#160;pixelByte = (lsbPixel &amp; 0x0F| msbPixel &lt;&lt; 4 &amp; 0xF0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Join two 4bit nibbles (lsbPixel and msbPixel) into a single byte (pixelByte) <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade3c083fa7b1178fcca5671e1830f2f9"></a><!-- doxytag: member="MegaMan::BIT_SET" ref="gade3c083fa7b1178fcca5671e1830f2f9" args="(a, b)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gade3c083fa7b1178fcca5671e1830f2f9">BIT_SET</a>(a, b)&#160;&#160;&#160;((a) |= (1&lt;&lt;(b)))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set bit number b of register/byte/variable a. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga77fc3a931d1ad5fa08201e5c544817a0"></a><!-- doxytag: member="MegaMan::BIT_CLEAR" ref="ga77fc3a931d1ad5fa08201e5c544817a0" args="(a, b)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga77fc3a931d1ad5fa08201e5c544817a0">BIT_CLEAR</a>(a, b)&#160;&#160;&#160;((a) &amp;= ~(1&lt;&lt;(b)))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear bit number b of register/byte/variable a. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab6e0e32ff769c3cf2953456593e5663e"></a><!-- doxytag: member="MegaMan::BIT_FLIP" ref="gab6e0e32ff769c3cf2953456593e5663e" args="(a, b)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gab6e0e32ff769c3cf2953456593e5663e">BIT_FLIP</a>(a, b)&#160;&#160;&#160;((a) ^= (1&lt;&lt;(b)))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flip bit number b of register/byte/variable a. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab53403b709717305a8d0a8e692a70de6"></a><!-- doxytag: member="MegaMan::BIT_CHECK" ref="gab53403b709717305a8d0a8e692a70de6" args="(a, b)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gab53403b709717305a8d0a8e692a70de6">BIT_CHECK</a>(a, b)&#160;&#160;&#160;((a) &amp; (1&lt;&lt;(b)))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if bit number b of register/byte/variable is set. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2b7116275ff2309adc0f8a5b5a249039"></a><!-- doxytag: member="MegaMan::BITMASK_SET" ref="ga2b7116275ff2309adc0f8a5b5a249039" args="(x, y)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga2b7116275ff2309adc0f8a5b5a249039">BITMASK_SET</a>(x, y)&#160;&#160;&#160;((x) |= (y))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set bitmask y on variable x. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c1eeb80a540f03a0fdcd5a58bc40bf2"></a><!-- doxytag: member="MegaMan::BITMASK_CLEAR" ref="ga1c1eeb80a540f03a0fdcd5a58bc40bf2" args="(x, y)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga1c1eeb80a540f03a0fdcd5a58bc40bf2">BITMASK_CLEAR</a>(x, y)&#160;&#160;&#160;((x) &amp;= (~(y)))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear bitmask y on variable x. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf855e6d4c97dd8def12b1b736ad9c93f"></a><!-- doxytag: member="MegaMan::BITMASK_FLIP" ref="gaf855e6d4c97dd8def12b1b736ad9c93f" args="(x, y)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gaf855e6d4c97dd8def12b1b736ad9c93f">BITMASK_FLIP</a>(x, y)&#160;&#160;&#160;((x) ^= (y))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flip bitmask y onto variable x. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1ce97811962c682fbb08a857efd22d67"></a><!-- doxytag: member="MegaMan::BITMASK_CHECK" ref="ga1ce97811962c682fbb08a857efd22d67" args="(x, y)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga1ce97811962c682fbb08a857efd22d67">BITMASK_CHECK</a>(x, y)&#160;&#160;&#160;((x) &amp; (y))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for bitmask y on variable x. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f757cfc4b07756d0585763433740827"></a><!-- doxytag: member="MegaMan::PEGGY_ADDRESS" ref="ga4f757cfc4b07756d0585763433740827" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga4f757cfc4b07756d0585763433740827">PEGGY_ADDRESS</a>&#160;&#160;&#160;34</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Peggy 2.0's address on the I2C bus. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3e79c6425e8cc6a0ce853eb49a45e5b9"></a><!-- doxytag: member="MegaMan::TWI_FREQ" ref="ga3e79c6425e8cc6a0ce853eb49a45e5b9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga3e79c6425e8cc6a0ce853eb49a45e5b9">TWI_FREQ</a>&#160;&#160;&#160;300000</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">I2C/TWO bus frequency, 300'000 bits/second. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga88866375a97efd9911514c81c87d5929"></a><!-- doxytag: member="MegaMan::getRightN" ref="ga88866375a97efd9911514c81c87d5929" args="(pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>getRightN</b>(pixelByte)&#160;&#160;&#160;(pixelByte &amp; 0x0F)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9d44d6425f8227b6cbefb103eb8a3fa5"></a><!-- doxytag: member="MegaMan::getLeftN" ref="ga9d44d6425f8227b6cbefb103eb8a3fa5" args="(pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>getLeftN</b>(pixelByte)&#160;&#160;&#160;(pixelByte &gt;&gt; 4 &amp; 0x0F)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab304dddbd1678551085bc66d54776d90"></a><!-- doxytag: member="MegaMan::setRightN" ref="gab304dddbd1678551085bc66d54776d90" args="(buffer, pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>setRightN</b>(buffer, pixelByte)&#160;&#160;&#160;buffer = (buffer &amp; 0xF0 | (pixelByte &amp; 0x0F))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7417764fac912650a002010fbb4d02d7"></a><!-- doxytag: member="MegaMan::setLeftN" ref="ga7417764fac912650a002010fbb4d02d7" args="(buffer, pixelByte)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>setLeftN</b>(buffer, pixelByte)&#160;&#160;&#160;buffer = (buffer &amp; 0x0F| (pixelByte &lt;&lt; 4 &amp; 0xF0))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga23569b6fb24ec4bd1583b2ee506df91b"></a><!-- doxytag: member="MegaMan::joinNibbles" ref="ga23569b6fb24ec4bd1583b2ee506df91b" args="(pixelByte, lsbPixel, msbPixel)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>joinNibbles</b>(pixelByte, lsbPixel, msbPixel)&#160;&#160;&#160;pixelByte = (lsbPixel &amp; 0x0F| msbPixel &lt;&lt; 4 &amp; 0xF0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73a4a57fa336ffb95ed7d58e718b2e3f"></a><!-- doxytag: member="MegaMan::scrollDelay" ref="ga73a4a57fa336ffb95ed7d58e718b2e3f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga73a4a57fa336ffb95ed7d58e718b2e3f">scrollDelay</a>&#160;&#160;&#160;40</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">speed of scroll - higher is slower <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7d23518d759519cde9b955735701ad46"></a><!-- doxytag: member="MegaMan::FRAME_BUFFER_SIZE" ref="ga7d23518d759519cde9b955735701ad46" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FRAME_BUFFER_SIZE</b>&#160;&#160;&#160;325</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3481dd6138035714f76dc5e63d4f313"></a><!-- doxytag: member="MegaMan::imageFromFlash" ref="gad3481dd6138035714f76dc5e63d4f313" args="(unsigned char *)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gad3481dd6138035714f76dc5e63d4f313">imageFromFlash</a> (unsigned char *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies an image from flash to Peggy. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac6a31f9107dfe32d9d1683cf733864c4"></a><!-- doxytag: member="MegaMan::updatePeggyDisplay" ref="gac6a31f9107dfe32d9d1683cf733864c4" args="(char *)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gac6a31f9107dfe32d9d1683cf733864c4">updatePeggyDisplay</a> (char *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates Peggy - by sending custom made headers. All processing takes place on Peggy. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga103f160680926ae94837d236f4f1ca8a"></a><!-- doxytag: member="MegaMan::alterBuffer" ref="ga103f160680926ae94837d236f4f1ca8a" args="(char *, unsigned char *)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga103f160680926ae94837d236f4f1ca8a">alterBuffer</a> (char *, unsigned char *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the frameBuffer - typically to create graphical effects. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga64b15cf19ae6a81a307e4b9163b1f717"></a><!-- doxytag: member="MegaMan::sendBuffer" ref="ga64b15cf19ae6a81a307e4b9163b1f717" args="(uint8_t *)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga64b15cf19ae6a81a307e4b9163b1f717">sendBuffer</a> (uint8_t *)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit the frameBuffer to Peggy. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2d106db4253178eb0b86bb1f83826fdc"></a><!-- doxytag: member="MegaMan::putPixel" ref="ga2d106db4253178eb0b86bb1f83826fdc" args="(uint8_t, uint8_t, uint8_t)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga2d106db4253178eb0b86bb1f83826fdc">putPixel</a> (uint8_t, uint8_t, uint8_t)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Display single pixel on Peggy through slow method of transferring entire frameBuffer. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga332352d7fb4b7b02401910478cec92fa">ISR</a> (TIMER5_COMPA_vect)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer interrupt Used primarily to check that the UART has been quiet for a while before whitching to our own graphics after having done UART-SPI conversion.  <a href="#ga332352d7fb4b7b02401910478cec92fa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafd676aabb0da97bf404f50ea4eab3210"></a><!-- doxytag: member="MegaMan::videoTransfer" ref="gafd676aabb0da97bf404f50ea4eab3210" args="(uint8_t count)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>videoTransfer</b> (uint8_t count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga1950e89e25c8e1215c11d7accd92ee97">updatePeggyDisplay</a> (char update[])</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the frameBuffer with some pattern/graphic/text and finally calls the sendBuffer function to transmit the whole buffer to Peggy2.  <a href="#ga1950e89e25c8e1215c11d7accd92ee97"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga609b1effb2d33cdee0e09fa8b8b28a26"></a><!-- doxytag: member="MegaMan::alterBuffer" ref="ga609b1effb2d33cdee0e09fa8b8b28a26" args="(char effect[], unsigned char *picture)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>alterBuffer</b> (char effect[], unsigned char *picture)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gab100da70ae2e4a18ef0d5848ab8ffbaf">processXbeeMsg</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes data (messages) from the XBee via Serial1.  <a href="#gab100da70ae2e4a18ef0d5848ab8ffbaf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4fc01d736fe50cf5b977f755b675f11d"></a><!-- doxytag: member="MegaMan::setup" ref="ga4fc01d736fe50cf5b977f755b675f11d" args="()" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setup</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gafe461d27b9c48d5921c00d521181f12f">loop</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Arduino main loop.  <a href="#gafe461d27b9c48d5921c00d521181f12f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadd8da7ba49a1cd121182231ce65d956b"></a><!-- doxytag: member="MegaMan::p2animScrollText" ref="gadd8da7ba49a1cd121182231ce65d956b" args="(char *textString)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>p2animScrollText</b> (char *textString)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e515964a07e1dd328f031505534831a"></a><!-- doxytag: member="MegaMan::leftShiftScreen" ref="ga7e515964a07e1dd328f031505534831a" args="(uint8_t yOffsetTop, uint8_t yOffsetBottom)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>leftShiftScreen</b> (uint8_t yOffsetTop, uint8_t yOffsetBottom)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga87b7f86895ffe46be5a9312322b5bfda"></a><!-- doxytag: member="MegaMan::rightShiftScreen" ref="ga87b7f86895ffe46be5a9312322b5bfda" args="(uint8_t yOffsetTop, uint8_t yOffsetBottom)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>rightShiftScreen</b> (uint8_t yOffsetTop, uint8_t yOffsetBottom)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1d0a846d46e9113d065b75867f95a2b0"></a><!-- doxytag: member="MegaMan::upShiftScreen" ref="ga1d0a846d46e9113d065b75867f95a2b0" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>upShiftScreen</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9578f6b4df384f8a656854251b553f77"></a><!-- doxytag: member="MegaMan::downShiftScreen" ref="ga9578f6b4df384f8a656854251b553f77" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>downShiftScreen</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga49d8735620889d7e56e1b166c36bc8c2"></a><!-- doxytag: member="MegaMan::putPixelBuffer" ref="ga49d8735620889d7e56e1b166c36bc8c2" args="(uint8_t x, uint8_t y, uint8_t gradient, uint8_t columns_scrolled)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>putPixelBuffer</b> (uint8_t x, uint8_t y, uint8_t gradient, uint8_t columns_scrolled)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga54a5e83cb11dd70f3a33fb1d73a6c42b"></a><!-- doxytag: member="MegaMan::p2animRomantic" ref="ga54a5e83cb11dd70f3a33fb1d73a6c42b" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>p2animRomantic</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8e4567379468130e9458ccb2ce069cce"></a><!-- doxytag: member="MegaMan::starField" ref="ga8e4567379468130e9458ccb2ce069cce" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>starField</b> (void)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PROGMEM prog_uchar&#160;</td><td class="memItemRight" valign="bottom"><b>a_heart</b> [13 *25]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PROGMEM prog_uchar&#160;</td><td class="memItemRight" valign="bottom"><b>smiley_plain</b> [13 *25]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PROGMEM prog_uchar&#160;</td><td class="memItemRight" valign="bottom"><b>smiley_open</b> [13 *25]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PROGMEM prog_uchar&#160;</td><td class="memItemRight" valign="bottom"><b>smiley_blink</b> [13 *25]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PROGMEM prog_uchar&#160;</td><td class="memItemRight" valign="bottom"><b>testpattern</b> [13 *25]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga044badc155ada65f4dbd410a3741f75e"></a><!-- doxytag: member="MegaMan::abortFlag" ref="ga044badc155ada65f4dbd410a3741f75e" args="" -->
boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga044badc155ada65f4dbd410a3741f75e">abortFlag</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag to abort execution if external event demands it. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab3c96aa4b0f9d056464804cf754a889e"></a><!-- doxytag: member="MegaMan::MP3player" ref="gab3c96aa4b0f9d056464804cf754a889e" args="" -->
SFEMP3Shield&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gab3c96aa4b0f9d056464804cf754a889e">MP3player</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">MP3 player object. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad2be532de5ff9d023a146fd3034b7925"></a><!-- doxytag: member="MegaMan::speakerVolume" ref="gad2be532de5ff9d023a146fd3034b7925" args="" -->
const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gad2be532de5ff9d023a146fd3034b7925">speakerVolume</a> = 40</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">audio volume, where 40 is minimum and 0 maximum volume <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gaabbf4d145c75a803133cdba5d9d81232">header</a> [6] = { 0xde,0xad,0xbe,0xef,1,0}</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">0xdeadbeef is the initialization string of the Peggy 2.0. Once it gets this it will read data from I2C directly to the local framebuffer  <a href="#gaabbf4d145c75a803133cdba5d9d81232"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6133fc6be516b3ec6d15cc5917979f8d"></a><!-- doxytag: member="MegaMan::cmdHeader" ref="ga6133fc6be516b3ec6d15cc5917979f8d" args="[7]" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga6133fc6be516b3ec6d15cc5917979f8d">cmdHeader</a> [7] = { 0xde,0xad,0xbe,0xef,1,1}</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Header which gives Peggy the command in the next byte. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga437ffbfa1e751a31d0497f67084fc934"></a><!-- doxytag: member="MegaMan::globalCounter" ref="ga437ffbfa1e751a31d0497f67084fc934" args="" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga437ffbfa1e751a31d0497f67084fc934">globalCounter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">global counter used to keep persisten values between function calls <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga571993b3a5645afe9fe29929c2856ceb"></a><!-- doxytag: member="MegaMan::globalFlipFlop" ref="ga571993b3a5645afe9fe29929c2856ceb" args="" -->
boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga571993b3a5645afe9fe29929c2856ceb">globalFlipFlop</a> = 1</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">global flag used to keep persisten values between function calls <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">boolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga044badc155ada65f4dbd410a3741f75e">abortFlag</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set in timer interrupt when XBee message received. Checked and acted upon in main loop every iteration.  <a href="#ga044badc155ada65f4dbd410a3741f75e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaccb2653af50979b13c5912a07fe660cc"></a><!-- doxytag: member="MegaMan::sender" ref="gaccb2653af50979b13c5912a07fe660cc" args="" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#gaccb2653af50979b13c5912a07fe660cc">sender</a> = 9</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sender who's contacting us. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4d43e8212bdc9dbee866506f04effcea"></a><!-- doxytag: member="MegaMan::cmd" ref="ga4d43e8212bdc9dbee866506f04effcea" args="" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga4d43e8212bdc9dbee866506f04effcea">cmd</a> = 9</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sender's requested command. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0f5ff78526ce1d8a53cfd7cfdb2d1f59"></a><!-- doxytag: member="MegaMan::cmdParam" ref="ga0f5ff78526ce1d8a53cfd7cfdb2d1f59" args="" -->
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___mega_man.html#ga0f5ff78526ce1d8a53cfd7cfdb2d1f59">cmdParam</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The sender's command parameters. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96639c3d5eaf7d9cf0de23fe6c19ee1c"></a><!-- doxytag: member="MegaMan::frameBuffer" ref="ga96639c3d5eaf7d9cf0de23fe6c19ee1c" args="[FRAME_BUFFER_SIZE]" -->
unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>frameBuffer</b> [FRAME_BUFFER_SIZE]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga61e48f6cbf459a8253d39afbd96a9a85"></a><!-- doxytag: member="MegaMan::serialTemp" ref="ga61e48f6cbf459a8253d39afbd96a9a85" args="" -->
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>serialTemp</b> = 0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf33e8a5fc100e8d481f1b7eaf3384bbd"></a><!-- doxytag: member="MegaMan::frameBuffer" ref="gaf33e8a5fc100e8d481f1b7eaf3384bbd" args="[FRAME_BUFFER_SIZE]" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>frameBuffer</b> [FRAME_BUFFER_SIZE]</td></tr>
</table>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga332352d7fb4b7b02401910478cec92fa"></a><!-- doxytag: member="MegaMan.ino::ISR" ref="ga332352d7fb4b7b02401910478cec92fa" args="(TIMER5_COMPA_vect)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___mega_man.html#ga332352d7fb4b7b02401910478cec92fa">ISR</a> </td>
          <td>(</td>
          <td class="paramtype">TIMER5_COMPA_vect&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Timer interrupt Used primarily to check that the UART has been quiet for a while before whitching to our own graphics after having done UART-SPI conversion. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">TIMER5_COMPA_vect</td><td>We use TIMER5 on this Arduino MEGA 2560 to avoid collisions with built-in Arduino libraries using TIMER1-3 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafe461d27b9c48d5921c00d521181f12f"></a><!-- doxytag: member="MegaMan.ino::loop" ref="gafe461d27b9c48d5921c00d521181f12f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___wally.html#gafe461d27b9c48d5921c00d521181f12f">loop</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Arduino main loop. </p>
<p>Main loop which Please note: the serial to I2C conversion does NOT touch the frameBuffer. This means that we cannot play with whatever is currently being displayed at the Peggy 2.0 as this is unknown to us This could be circumvented by copying the serial input to the Peggy 2.0 via the frameBuffer (slow!) or we could query the Peggy 2.0 for the current contents of the "screen" (unimplemented on both sides) </p>

</div>
</div>
<a class="anchor" id="gab100da70ae2e4a18ef0d5848ab8ffbaf"></a><!-- doxytag: member="MegaMan.ino::processXbeeMsg" ref="gab100da70ae2e4a18ef0d5848ab8ffbaf" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="group___mega_man.html#gab100da70ae2e4a18ef0d5848ab8ffbaf">processXbeeMsg</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Processes data (messages) from the XBee via Serial1. </p>
<p>This function receives messages on this format: {s0c1:Alive.mp3} Format: s? = numeric ID of sender (0 = MegaMan, 1 = Wally, 2 = PC) c?:param = command number with argument (max length = 64 chars) list of commands: 0: event notification : description of event 1: play MP3 file : full filename of MP3 file 2: display text : text 3: play animation : animation name 4: time : current time from RTC 5: alert : alert type 9: heartbeat : heartbeat</p>
<p>Returns 0 if message is heartbeat, 1 otherwise - NOTE: MAKE THIS SMARTER!</p>
<p>We ack the messages by retuning "ack:c:param" on the serial line, or if malformed message/illegal format: "ERR"</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0==heartbeat, no action required 1==alarm, needs processing </dd></dl>

</div>
</div>
<a class="anchor" id="ga1950e89e25c8e1215c11d7accd92ee97"></a><!-- doxytag: member="MegaMan.ino::updatePeggyDisplay" ref="ga1950e89e25c8e1215c11d7accd92ee97" args="(char update[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group___mega_man.html#ga1950e89e25c8e1215c11d7accd92ee97">updatePeggyDisplay</a> </td>
          <td>(</td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>update</em>[]</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This function fills the frameBuffer with some pattern/graphic/text and finally calls the sendBuffer function to transmit the whole buffer to Peggy2. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">char</td><td>update[] text string describing the update we want. "testpattern" - draw pattern of straight lines that fade in and out "clear" - turns all LEDs off "allon" - turns all LEDs on "scan" - radar scan animation "skull" - skull and crossbones animation </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="ga32583453573b67fdd04d77071bf20798"></a><!-- doxytag: member="flash_pics.cpp::a_heart" ref="ga32583453573b67fdd04d77071bf20798" args="[13 *25]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PROGMEM prog_uchar a_heart[13 *25]</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment">   
        {
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,  71, 135,  64,   0,   0,   0,  55, 152,  64,   0,   0, 
          0,  25, 136, 136, 153,  16,   0,   9, 204, 221, 235,  32,   0, 
          0, 151, 137, 153, 153, 177,   0, 188, 205, 238, 238, 209,   0, 
          8, 121, 153, 154, 170, 170,   9, 205, 222, 238, 238, 235,   0, 
         25, 137, 154, 170, 187, 188, 157, 221, 222, 238, 255, 255,  32, 
         89, 153, 170, 171, 187, 198,  53, 126, 239, 255, 255, 255, 128, 
        137, 154, 170, 187, 204, 197,   0, 111, 255, 255, 255, 255, 176, 
        137, 170, 187, 188, 205, 165,   0, 143, 255, 255, 255, 255, 192, 
        153, 171, 187, 204, 217,  48,   0,   7, 255, 255, 255, 255, 192, 
        122, 187, 204, 205, 218,   0, 255,   7, 255, 255, 255, 255, 160, 
         59, 188, 204, 221, 232,   0, 255,   6, 207, 255, 255, 255,  64, 
         10, 188, 221, 223, 128,   0,   0,   0,  95, 255, 255, 251,   0, 
          0, 204, 221, 255, 176,   0,   0,   0, 127, 255, 255, 208,   0, 
          0,  27, 223, 251, 128,  15, 255, 240,  60, 255, 251,  16,   0, 
          0,   0, 143, 249,   0,   0, 255,   0,   4, 255, 128,   0,   0, 
          0,   0,   3, 204,   0,   0, 255,   0,   0, 194,   0,   0,   0, 
          0,   0,   0,   7, 255, 255, 255, 255, 247,   0,   0,   0,   0, 
          0,   0,   0,   0,  62, 255, 255, 255,  64,   0,   0,   0,   0, 
          0,   0,   0,   0,   1, 239, 255, 243,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,  31, 255,  48,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   4, 246,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,  80,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0 
        }
</pre></div>
</div>
</div>
<a class="anchor" id="ga044badc155ada65f4dbd410a3741f75e"></a><!-- doxytag: member="MegaMan.ino::abortFlag" ref="ga044badc155ada65f4dbd410a3741f75e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">boolean <a class="el" href="group___mega_man.html#ga044badc155ada65f4dbd410a3741f75e">abortFlag</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set in timer interrupt when XBee message received. Checked and acted upon in main loop every iteration. </p>
<p>Flag to abort execution if external event demands it. </p>

</div>
</div>
<a class="anchor" id="gaabbf4d145c75a803133cdba5d9d81232"></a><!-- doxytag: member="MegaMan.ino::header" ref="gaabbf4d145c75a803133cdba5d9d81232" args="[6]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t <a class="el" href="group___mega_man.html#gaabbf4d145c75a803133cdba5d9d81232">header</a>[6] = { 0xde,0xad,0xbe,0xef,1,0}</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>0xdeadbeef is the initialization string of the Peggy 2.0. Once it gets this it will read data from I2C directly to the local framebuffer </p>
<dl class="note"><dt><b>Note:</b></dt><dd>If we want to send commands to Peggy we have to change the last byte to 1 </dd></dl>

</div>
</div>
<a class="anchor" id="ga596447dd22cdaa2e4703ebe62d133ae8"></a><!-- doxytag: member="flash_pics.cpp::smiley_blink" ref="ga596447dd22cdaa2e4703ebe62d133ae8" args="[13 *25]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PROGMEM prog_uchar smiley_blink[13 *25]</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment">      
        {
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   3, 105, 187, 150,  48,   0,   0,   0,   0, 
          0,   0,   0,   5, 191, 255, 255, 255, 251,  80,   0,   0,   0, 
          0,   0,   0, 159, 253, 132,  51,  72, 223, 249,   0,   0,   0, 
          0,   0,  11, 254,  96,   0,   0,   0,   6, 239, 176,   0,   0, 
          0,   0, 175, 194,   0,   0,   0,   0,   0,  44, 250,   0,   0, 
          0,   6, 253,  32,   0,   0,   0,   1,  48,   2, 223,  96,   0, 
          0,  29, 245,   0,   0,   0,   0,  62, 249,   0,  79, 209,   0, 
          0,  95, 192,   0,   3,  32,   0, 159, 255,  16,  11, 245,   0, 
          0, 159,  80,   0, 159, 244,   0, 175, 255,  16,   5, 249,   0, 
          0, 207,  32,   0,   4,  48,   0,  79, 249,   0,   2, 252,   0, 
          0, 222,  32,   0,   0,   0,   0,   3,  64,   0,   2, 238,   0, 
          0, 222,  32,  17,   0,   0,   0,   0,   0,   1,   2, 238,   0, 
          0, 207,  32,  90,   0,   0,   0,   0,   0, 133,   2, 252,   0, 
          0, 143,  80,  46, 112,   0,   0,   0,   6, 227,   4, 249,   0, 
          0,  78, 176,   8, 232,  48,   0,   2, 142, 144,  10, 229,   0, 
          0,  28, 228,   0, 174, 235, 153, 190, 234,   0,  78, 193,   0, 
          0,   5, 236,  32,   6, 222, 238, 237, 112,   2, 206,  96,   0, 
          0,   0, 158, 178,   0,   5, 119,  81,   0,  43, 233,   0,   0, 
          0,   0,  10, 236,  80,   0,   0,   0,   5, 206, 160,   0,   0, 
          0,   0,   0, 142, 235, 115,  34,  54, 190, 232,   0,   0,   0, 
          0,   0,   0,   4, 174, 238, 238, 238, 234,  64,   0,   0,   0, 
          0,   0,   0,   0,   3, 104, 170, 134,  48,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0 
        }
</pre></div>
</div>
</div>
<a class="anchor" id="gadfb0825f8593dff9ecfedbdf18f1184f"></a><!-- doxytag: member="flash_pics.cpp::smiley_open" ref="gadfb0825f8593dff9ecfedbdf18f1184f" args="[13 *25]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PROGMEM prog_uchar smiley_open[13 *25]</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment">       
        {
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,  48, 150, 187, 105,   3,   0,   0,   0,   0,   0, 
          0,   0, 181, 255, 255, 255, 255,  91,   0,   0,   0,   0,   0, 
          0, 144, 255, 141,  52,  67, 216, 255,   9,   0,   0,   0,   0, 
          0, 251, 110,   0,   0,   0,   0, 230, 191,   0,   0,   0,   0, 
        160, 207,   2,   0,   0,   0,   0,  32, 252,  10,   0,   0,   0, 
        246,  45,   0,  35,   0,   0,  49,   0, 210, 111,   0,   0,   1, 
        253,   5, 128, 255,   4,  48, 254,   9,  64, 223,   1,   0,   5, 
        207,   0, 241, 255,  10, 144, 255,  31,   0, 251,   5,   0,   9, 
         95,   0, 241, 255,  10, 160, 255,  31,   0, 245,   9,   0,  12, 
         47,   0, 144, 255,   4,  64, 255,   9,   0, 242,  12,   0,  13, 
         46,   0,   0,  52,   0,   0,  67,   0,   0, 226,  14,   0,  13, 
         46,  16,   1,   0,   0,   0,   0,   0,   1, 226,  14,   0,  12, 
         47,  80,  10,   0,   0,   0,   0, 128,   5, 242,  12,   0,   8, 
         95,  32, 126, 255, 155, 185, 254, 230,   3, 244,   9,   0,   4, 
        190,   0, 232,   0,   0,   0,   0, 158,   0, 234,   5,   0,   1, 
        236,   4, 160,  14,   0,   0,   0,  10,  64, 206,   1,   0,   0, 
        229,  44,   0, 214, 238, 238, 125,   0, 194, 110,   0,   0,   0, 
        144, 190,   2,   0, 117,  87,   1,  32, 235,   9,   0,   0,   0, 
          0, 234,  92,   0,   0,   0,   0, 197, 174,   0,   0,   0,   0, 
          0, 128, 238, 123,  35,  50, 182, 238,   8,   0,   0,   0,   0, 
          0,   0, 164, 238, 238, 238, 238,  74,   0,   0,   0,   0,   0, 
          0,   0,   0,  99, 168, 138,  54,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
        }
</pre></div>
</div>
</div>
<a class="anchor" id="ga5c9a1c94135dffcce663542d07fd6275"></a><!-- doxytag: member="flash_pics.cpp::smiley_plain" ref="ga5c9a1c94135dffcce663542d07fd6275" args="[13 *25]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PROGMEM prog_uchar smiley_plain[13 *25]</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment">      
        {
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   3, 105, 187, 150,  48,   0,   0,   0,   0, 
          0,   0,   0,   5, 191, 255, 255, 255, 251,  80,   0,   0,   0, 
          0,   0,   0, 159, 253, 132,  51,  72, 223, 249,   0,   0,   0, 
          0,   0,  11, 254,  96,   0,   0,   0,   6, 239, 176,   0,   0, 
          0,   0, 175, 194,   0,   0,   0,   0,   0,  44, 250,   0,   0, 
          0,   6, 253,  32,   3,  32,   0,   1,  48,   2, 223,  96,   0, 
          0,  29, 245,   0, 143, 244,   0,  62, 249,   0,  79, 209,   0, 
          0,  95, 192,   1, 255, 250,   0, 159, 255,  16,  11, 245,   0, 
          0, 159,  80,   1, 255, 250,   0, 175, 255,  16,   5, 249,   0, 
          0, 207,  32,   0, 159, 244,   0,  79, 249,   0,   2, 252,   0, 
          0, 222,  32,   0,   4,  48,   0,   3,  64,   0,   2, 238,   0, 
          0, 222,  32,  17,   0,   0,   0,   0,   0,   1,   2, 238,   0, 
          0, 207,  32,  90,   0,   0,   0,   0,   0, 133,   2, 252,   0, 
          0, 143,  80,  46, 112,   0,   0,   0,   6, 227,   4, 249,   0, 
          0,  78, 176,   8, 232,  48,   0,   2, 142, 144,  10, 229,   0, 
          0,  28, 228,   0, 174, 235, 153, 190, 234,   0,  78, 193,   0, 
          0,   5, 236,  32,   6, 222, 238, 237, 112,   2, 206,  96,   0, 
          0,   0, 158, 178,   0,   5, 119,  81,   0,  43, 233,   0,   0, 
          0,   0,  10, 236,  80,   0,   0,   0,   5, 206, 160,   0,   0, 
          0,   0,   0, 142, 235, 115,  34,  54, 190, 232,   0,   0,   0, 
          0,   0,   0,   4, 174, 238, 238, 238, 234,  64,   0,   0,   0, 
          0,   0,   0,   0,   3, 104, 170, 134,  48,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0 
        }
</pre></div>
</div>
</div>
<a class="anchor" id="ga10b0a4370bfecc3eb587306fd1a9cba7"></a><!-- doxytag: member="flash_pics.cpp::testpattern" ref="ga10b0a4370bfecc3eb587306fd1a9cba7" args="[13 *25]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PROGMEM prog_uchar testpattern[13 *25]</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment">       
        {
         15,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  15,   0, 
        255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 
         15, 240,   0,   0,   0,   0, 240,   0,   0,   0,   0, 255,   0, 
         15,  15,   0,   0, 240,   0, 240,   0,   0,   0,  15,  15,   0, 
         15,   0, 240,  15, 255,   0, 240,   0,   0,   0, 240,  15,   0, 
         15,   0,  15,   0, 240,   0, 240,   0,   0,  15,   0,  15,   0, 
         15,   0,   0, 240,   0,   0, 240,   0,   0, 240,   0,  15,   0, 
         15,   0,   0,  15,   0,   0, 240,   0,  15,   0,   0,  15,   0, 
         15,   0,   0,   0, 240,   0, 240,   0, 240,   0,   0,  15,   0, 
         15,  15, 255,   0,  15,   0, 240,  15,   0,   0,   0,  15,   0, 
         15,   0,   0,   0,   0, 240, 240, 240,   0,   0,   0,  15,   0, 
         15,   0,   0,   0,   0,  15,  15,   0,   0,   0,   0,  15,   0, 
         15, 255, 255, 255, 255, 240, 240, 255, 255, 255, 255, 255,   0, 
         15,   0,   0,   0,   0,  15,  15,   0,   0,   0,   0,  15,   0, 
         15,   0,   0,   0,   0, 240, 240,   0,   0,   0,   0,  15,   0, 
         15,   0,   0,   0,  15,   0, 240,   0, 136, 136, 128,  15,   0, 
         15,   0,   0,   0, 240,   0, 240,   0, 136, 136, 128,  15,   0, 
         15,   0,   0,  15,   0,   0, 240,   0, 136, 136, 128,  15,   0, 
         15,   0,   0, 240,   0,   0, 240,   0, 136, 136, 128,  15,   0, 
         15,   0,  15,   0,   0,   0, 240,   0, 136, 136, 128,  15,   0, 
         15,   0, 240,   0,   0,   0, 240,   0, 136, 136, 128,  15,   0, 
         15,  15,   0,   0,   0,   0, 240,   0,   0,   0,   0,  15,   0, 
         15, 240,   0,   0,   0,   0, 240,   0,   0,   0,   0, 255,   0, 
        255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 
         15,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  15,   0 
        }
</pre></div>
</div>
</div>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div>
  <div id="nav-path" class="navpath">
    <ul>

    <li class="footer">Generated on Thu May 24 2012 00:05:01 for Wally The Sentry Bot by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
